package com.zx._12_算法.数据结构.queue;

public class Demo1 {

    // 约瑟夫环（普通模式）
    // 有一个数组a[100]存放0--99;要求每隔两个数删掉一个数，
    // 到末尾时循环至开头继续进行，求最后一个被删掉的数。
    public static void main(String[] args) {
        Queue queue = new Queue();
        for (int i = 0; i < 100; i++) {
            queue.enqueue(i);
        }

        int i = 1;
        while (queue.size() > 1) {
            // 从尾部取出一个数字
            Integer dequeue = queue.dequeue();
            // 判断数字是不是需要被删除
            if (i == 3) {
                // 已经出队列了，不需要继续操作，重新计数即可
                i = 1;
            } else {
                // 重新进入队列
                i++;
                queue.enqueue(dequeue);
            }
        }

        System.out.println(queue.head());
    }

}
